/*
  配送饼干
  题目描述
    已知库存有 12 箱五斤重的饼干，5 箱两斤重的饼干，10 箱子一斤重的饼干，
    假设需要需要 n 斤重的饼干，在不必拆箱的情况下，完成配货，请你完成这个工作，
    给定的数据一定存在至少一种配货方案。
  输入描述
    客户需要购买的饼干斤数 n。（1 <= n <= 80）
  输出描述
    输出所有满足客户要求的配货方案，每种配货方案换行输出，每个配货方案包含五斤、两斤、一斤的饼干箱数，
      每两个数字用一个空格间隔。
  样例1
    输入
      9
    输出
      0 0 9
      0 1 7
      0 2 5
      0 3 3
      0 4 1
      1 0 4
      1 1 2
      1 2 0
*/

#include <iostream>

using namespace std;

int main() {
    int k;
    int n;

    cin >> n;
    for (int i = 0; i <= 12; i++) {
        for (int j = 0; j <= 5; j++) {
            k = n - i * 5 - j * 2; // 提示: 这里不需要再对 k 进行暴力枚举了，这是一个优化点!
            if (k >= 0 && k <= 10) {
                if (i*5 + j*2 + k == n) {
                    cout << i << " " << j << " "<< k << endl;
                }
            }

        }
    }

    return 0;
}